package SpringFramework.AOP.Method.aop;

import java.lang.reflect.Method;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;

// 声明一个切面
@Aspect
// 让这个切面称为Spring容器管理的Bean。
@Component("LogAspect.method")
public class LogAspect {
	// 声明一个建言，此建言直接使用拦截规则作为参数。
	@Before("execution(* zzz.example.Spring.AOP.Method.service.DemoMethodService.*(..))")
	public void before(JoinPoint joinPoint) {
		MethodSignature signature = (MethodSignature)joinPoint.getSignature();
		Method method = signature.getMethod();
		System.out.println("方法规则式拦截：" + method.getName());
	}
}
